package or;

import org.junit.jupiter.api.Test;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class T1590 {
    public int minSubarray(int[] nums, int p) {
        int r=0,sum=0,min=nums.length;
        for(int num:nums){
            r=(r+num)%p;
        }
        if(r==0)return 0;
        Map<Integer,Integer> map=new HashMap<>();
        map.put(0,-1);
        for (int i = 0; i <nums.length ; i++) {
            sum=(sum+nums[i])%p;
            int leftvalue=(sum+p-r)%p;
            if(map.containsKey(leftvalue)){
                min=Math.min(min,i-map.get(leftvalue)) ;
            }
            map.put(sum,i);
        }
        return min==nums.length?-1:min;
    }
    @Test
    public void test() {
        int[] ints = {1,2,3};
        System.out.println(minSubarray(ints, 3));

    }
}
